﻿using System;
using System.Collections.Generic;
using SharpSqlAnalyzer.nodes.hive;
using SharpSqlAnalyzer.nodes.mysql;

namespace SharpSqlAnalyzer.nodes
{
	// Token: 0x02000277 RID: 631
	public class TAlterTableOption : TParseTreeNode
	{
		// Token: 0x060013CF RID: 5071 RVA: 0x00324328 File Offset: 0x00322528
		public void setNewTablespaceName(TObjectName n)
		{
			this.NewTablespaceName = n;
		}

		// Token: 0x060013D0 RID: 5072 RVA: 0x00324331 File Offset: 0x00322531
		public void setNewOwnerName(TObjectName n)
		{
			this._newOwnerName = n;
		}

		// Token: 0x060013D1 RID: 5073 RVA: 0x0032433A File Offset: 0x0032253A
		public void setAnyTypeName(TObjectName n)
		{
			this._anyTypeName = n;
		}

		// Token: 0x060013D2 RID: 5074 RVA: 0x00324343 File Offset: 0x00322543
		public void setParentTable(TObjectName n)
		{
			this._parentTable = n;
		}

		// Token: 0x060013D3 RID: 5075 RVA: 0x0032434C File Offset: 0x0032254C
		public void setRuleName(TObjectName n)
		{
			this._ruleName = n;
		}

		// Token: 0x060013D4 RID: 5076 RVA: 0x00324355 File Offset: 0x00322555
		public void setTriggerName(TObjectName n)
		{
			this._triggerName = n;
		}

		// Token: 0x060013D5 RID: 5077 RVA: 0x0032435E File Offset: 0x0032255E
		public void setIndexName(TObjectName n)
		{
			this._indexName = n;
		}

		// Token: 0x060013D6 RID: 5078 RVA: 0x00324367 File Offset: 0x00322567
		public void setNewTableName(TObjectName n)
		{
			this._newTableName = n;
		}

		// Token: 0x060013D7 RID: 5079 RVA: 0x00324370 File Offset: 0x00322570
		public void setUsingExpr(TExpression e)
		{
			this._usingExpr = e;
		}

		// Token: 0x060013D8 RID: 5080 RVA: 0x00324379 File Offset: 0x00322579
		public void setNewCollation(TObjectName n)
		{
			this._newCollation = n;
		}

		// Token: 0x060013D9 RID: 5081 RVA: 0x00324382 File Offset: 0x00322582
		public void setNewDataType(TTypeName n)
		{
			this._newDataType = n;
		}

		// Token: 0x060013DA RID: 5082 RVA: 0x0032438B File Offset: 0x0032258B
		public void setStorageName(TObjectName n)
		{
			this._storageName = n;
		}

		// Token: 0x060013DB RID: 5083 RVA: 0x00324394 File Offset: 0x00322594
		public void setAttributeOptions(List<TAttributeOption> o)
		{
			this._attributeOptions = o;
		}

		// Token: 0x060013DC RID: 5084 RVA: 0x0032439D File Offset: 0x0032259D
		public void setStatisticsValue(TConstant c)
		{
			this._statisticsValue = c;
		}

		// Token: 0x060013DD RID: 5085 RVA: 0x003243A6 File Offset: 0x003225A6
		public void setDefaultExpr(TExpression e)
		{
			this._defaultExpr = e;
		}

		// Token: 0x060013DE RID: 5086 RVA: 0x003243AF File Offset: 0x003225AF
		public void setColumnName(TObjectName on)
		{
			this._columnName = on;
		}

		// Token: 0x1700036E RID: 878
		// (get) Token: 0x060013E0 RID: 5088 RVA: 0x003243C1 File Offset: 0x003225C1
		// (set) Token: 0x060013DF RID: 5087 RVA: 0x003243B8 File Offset: 0x003225B8
		public virtual List<TMySQLIndexOption> IndexOptionList
		{
			get
			{
				return this._indexOptionList;
			}
			set
			{
				this._indexOptionList = value;
			}
		}

		// Token: 0x1700036F RID: 879
		// (get) Token: 0x060013E2 RID: 5090 RVA: 0x003243D2 File Offset: 0x003225D2
		// (set) Token: 0x060013E1 RID: 5089 RVA: 0x003243C9 File Offset: 0x003225C9
		public virtual List<TIndexColName> IndexCols
		{
			get
			{
				return this._indexCols;
			}
			set
			{
				this._indexCols = value;
			}
		}

		// Token: 0x17000370 RID: 880
		// (get) Token: 0x060013E3 RID: 5091 RVA: 0x003243DA File Offset: 0x003225DA
		public EKeyReferenceType DropRestrictType
		{
			get
			{
				return this._dropRestrictType;
			}
		}

		// Token: 0x060013E4 RID: 5092 RVA: 0x003243E2 File Offset: 0x003225E2
		public virtual void setDropRestrictType(TSourceToken st)
		{
			if (st == null)
			{
				return;
			}
			if (st.tokencode == 539)
			{
				this._dropRestrictType = EKeyReferenceType.cascade;
				return;
			}
			if (st.tokencode == 540)
			{
				this._dropRestrictType = EKeyReferenceType.restrict;
			}
		}

		// Token: 0x17000371 RID: 881
		// (get) Token: 0x060013E5 RID: 5093 RVA: 0x00324411 File Offset: 0x00322611
		// (set) Token: 0x060013E6 RID: 5094 RVA: 0x00324419 File Offset: 0x00322619
		public virtual EAlterTableOptionType OptionType
		{
			get
			{
				return this._optionType;
			}
			set
			{
				this._optionType = value;
			}
		}

		// Token: 0x17000372 RID: 882
		// (get) Token: 0x060013E7 RID: 5095 RVA: 0x00324422 File Offset: 0x00322622
		// (set) Token: 0x060013E8 RID: 5096 RVA: 0x0032442A File Offset: 0x0032262A
		public virtual TExpression PartitionExpression2
		{
			get
			{
				return this._partitionExpression2;
			}
			set
			{
				this._partitionExpression2 = value;
			}
		}

		// Token: 0x17000373 RID: 883
		// (get) Token: 0x060013E9 RID: 5097 RVA: 0x00324433 File Offset: 0x00322633
		// (set) Token: 0x060013EA RID: 5098 RVA: 0x0032443B File Offset: 0x0032263B
		public virtual TExpression PartitionExpression1
		{
			get
			{
				return this._partitionExpression1;
			}
			set
			{
				this._partitionExpression1 = value;
			}
		}

		// Token: 0x17000374 RID: 884
		// (get) Token: 0x060013EB RID: 5099 RVA: 0x00324444 File Offset: 0x00322644
		// (set) Token: 0x060013EC RID: 5100 RVA: 0x0032444C File Offset: 0x0032264C
		public virtual TObjectNameList ConstraintNameList
		{
			get
			{
				return this._constraintNameList;
			}
			set
			{
				this._constraintNameList = value;
			}
		}

		// Token: 0x17000375 RID: 885
		// (get) Token: 0x060013ED RID: 5101 RVA: 0x00324455 File Offset: 0x00322655
		// (set) Token: 0x060013EE RID: 5102 RVA: 0x0032445D File Offset: 0x0032265D
		public virtual TObjectName SchemaName
		{
			get
			{
				return this._schemaName;
			}
			set
			{
				this._schemaName = value;
			}
		}

		// Token: 0x17000376 RID: 886
		// (get) Token: 0x060013F0 RID: 5104 RVA: 0x0032446F File Offset: 0x0032266F
		// (set) Token: 0x060013EF RID: 5103 RVA: 0x00324466 File Offset: 0x00322666
		public virtual TObjectName NewTablespaceName
		{
			get
			{
				return this._newTablespaceName;
			}
			set
			{
				this._newTablespaceName = value;
			}
		}

		// Token: 0x17000377 RID: 887
		// (get) Token: 0x060013F2 RID: 5106 RVA: 0x00324480 File Offset: 0x00322680
		// (set) Token: 0x060013F1 RID: 5105 RVA: 0x00324477 File Offset: 0x00322677
		public virtual TObjectName NewOwnerName
		{
			get
			{
				return this._newOwnerName;
			}
			set
			{
				this._newOwnerName = value;
			}
		}

		// Token: 0x17000378 RID: 888
		// (get) Token: 0x060013F4 RID: 5108 RVA: 0x00324491 File Offset: 0x00322691
		// (set) Token: 0x060013F3 RID: 5107 RVA: 0x00324488 File Offset: 0x00322688
		public virtual TObjectName AnyTypeName
		{
			get
			{
				return this._anyTypeName;
			}
			set
			{
				this._anyTypeName = value;
			}
		}

		// Token: 0x17000379 RID: 889
		// (get) Token: 0x060013F6 RID: 5110 RVA: 0x003244A2 File Offset: 0x003226A2
		// (set) Token: 0x060013F5 RID: 5109 RVA: 0x00324499 File Offset: 0x00322699
		public virtual TObjectName ParentTable
		{
			get
			{
				return this._parentTable;
			}
			set
			{
				this._parentTable = value;
			}
		}

		// Token: 0x1700037A RID: 890
		// (get) Token: 0x060013F8 RID: 5112 RVA: 0x003244B3 File Offset: 0x003226B3
		// (set) Token: 0x060013F7 RID: 5111 RVA: 0x003244AA File Offset: 0x003226AA
		public virtual TObjectName RuleName
		{
			get
			{
				return this._ruleName;
			}
			set
			{
				this._ruleName = value;
			}
		}

		// Token: 0x1700037B RID: 891
		// (get) Token: 0x060013FA RID: 5114 RVA: 0x003244C4 File Offset: 0x003226C4
		// (set) Token: 0x060013F9 RID: 5113 RVA: 0x003244BB File Offset: 0x003226BB
		public virtual TObjectName TriggerName
		{
			get
			{
				return this._triggerName;
			}
			set
			{
				this._triggerName = value;
			}
		}

		// Token: 0x1700037C RID: 892
		// (get) Token: 0x060013FC RID: 5116 RVA: 0x003244D5 File Offset: 0x003226D5
		// (set) Token: 0x060013FB RID: 5115 RVA: 0x003244CC File Offset: 0x003226CC
		public virtual TObjectName IndexName
		{
			get
			{
				return this._indexName;
			}
			set
			{
				this._indexName = value;
			}
		}

		// Token: 0x1700037D RID: 893
		// (get) Token: 0x060013FE RID: 5118 RVA: 0x003244E6 File Offset: 0x003226E6
		// (set) Token: 0x060013FD RID: 5117 RVA: 0x003244DD File Offset: 0x003226DD
		public virtual TConstraint TableConstraint
		{
			get
			{
				return this._tableConstraint;
			}
			set
			{
				this._tableConstraint = value;
			}
		}

		// Token: 0x1700037E RID: 894
		// (get) Token: 0x06001400 RID: 5120 RVA: 0x003244F7 File Offset: 0x003226F7
		// (set) Token: 0x060013FF RID: 5119 RVA: 0x003244EE File Offset: 0x003226EE
		public virtual TExpression UsingExpr
		{
			get
			{
				return this._usingExpr;
			}
			set
			{
				this._usingExpr = value;
			}
		}

		// Token: 0x1700037F RID: 895
		// (get) Token: 0x06001402 RID: 5122 RVA: 0x00324508 File Offset: 0x00322708
		// (set) Token: 0x06001401 RID: 5121 RVA: 0x003244FF File Offset: 0x003226FF
		public virtual TObjectName NewCollation
		{
			get
			{
				return this._newCollation;
			}
			set
			{
				this._newCollation = value;
			}
		}

		// Token: 0x17000380 RID: 896
		// (get) Token: 0x06001404 RID: 5124 RVA: 0x00324519 File Offset: 0x00322719
		// (set) Token: 0x06001403 RID: 5123 RVA: 0x00324510 File Offset: 0x00322710
		public virtual TTypeName NewDataType
		{
			get
			{
				return this._newDataType;
			}
			set
			{
				this._newDataType = value;
			}
		}

		// Token: 0x17000381 RID: 897
		// (get) Token: 0x06001406 RID: 5126 RVA: 0x0032452A File Offset: 0x0032272A
		// (set) Token: 0x06001405 RID: 5125 RVA: 0x00324521 File Offset: 0x00322721
		public virtual TObjectName StorageName
		{
			get
			{
				return this._storageName;
			}
			set
			{
				this._storageName = value;
			}
		}

		// Token: 0x17000382 RID: 898
		// (get) Token: 0x06001408 RID: 5128 RVA: 0x0032453B File Offset: 0x0032273B
		// (set) Token: 0x06001407 RID: 5127 RVA: 0x00324532 File Offset: 0x00322732
		public virtual List<TAttributeOption> AttributeOptions
		{
			get
			{
				return this._attributeOptions;
			}
			set
			{
				this._attributeOptions = value;
			}
		}

		// Token: 0x17000383 RID: 899
		// (get) Token: 0x0600140A RID: 5130 RVA: 0x0032454C File Offset: 0x0032274C
		// (set) Token: 0x06001409 RID: 5129 RVA: 0x00324543 File Offset: 0x00322743
		public virtual TConstant StatisticsValue
		{
			get
			{
				return this._statisticsValue;
			}
			set
			{
				this._statisticsValue = value;
			}
		}

		// Token: 0x17000384 RID: 900
		// (get) Token: 0x0600140C RID: 5132 RVA: 0x0032455D File Offset: 0x0032275D
		// (set) Token: 0x0600140B RID: 5131 RVA: 0x00324554 File Offset: 0x00322754
		public virtual TExpression DefaultExpr
		{
			get
			{
				return this._defaultExpr;
			}
			set
			{
				this._defaultExpr = value;
			}
		}

		// Token: 0x17000385 RID: 901
		// (get) Token: 0x0600140E RID: 5134 RVA: 0x0032456E File Offset: 0x0032276E
		// (set) Token: 0x0600140D RID: 5133 RVA: 0x00324565 File Offset: 0x00322765
		public virtual TSourceToken MySQLIndexTypeToken
		{
			get
			{
				return this._mySQLIndexTypeToken;
			}
			set
			{
				this._mySQLIndexTypeToken = value;
			}
		}

		// Token: 0x17000386 RID: 902
		// (get) Token: 0x06001410 RID: 5136 RVA: 0x0032457F File Offset: 0x0032277F
		// (set) Token: 0x0600140F RID: 5135 RVA: 0x00324576 File Offset: 0x00322776
		public virtual TMySQLIndexStorageType MySQLIndexStorageType
		{
			get
			{
				return this._mySQLIndexStorageType;
			}
			set
			{
				this._mySQLIndexStorageType = value;
			}
		}

		// Token: 0x17000387 RID: 903
		// (get) Token: 0x06001412 RID: 5138 RVA: 0x00324590 File Offset: 0x00322790
		// (set) Token: 0x06001411 RID: 5137 RVA: 0x00324587 File Offset: 0x00322787
		public virtual TObjectName NewTableName
		{
			get
			{
				return this._newTableName;
			}
			set
			{
				this._newTableName = value;
			}
		}

		// Token: 0x17000388 RID: 904
		// (get) Token: 0x06001414 RID: 5140 RVA: 0x003245A1 File Offset: 0x003227A1
		// (set) Token: 0x06001413 RID: 5139 RVA: 0x00324598 File Offset: 0x00322798
		public virtual TObjectNameList ReferencedColumnList
		{
			get
			{
				return this._referencedColumnList;
			}
			set
			{
				this._referencedColumnList = value;
			}
		}

		// Token: 0x17000389 RID: 905
		// (get) Token: 0x06001416 RID: 5142 RVA: 0x003245B2 File Offset: 0x003227B2
		// (set) Token: 0x06001415 RID: 5141 RVA: 0x003245A9 File Offset: 0x003227A9
		public virtual TObjectName ReferencedObjectName
		{
			get
			{
				return this._referencedObjectName;
			}
			set
			{
				this._referencedObjectName = value;
			}
		}

		// Token: 0x1700038A RID: 906
		// (get) Token: 0x06001418 RID: 5144 RVA: 0x003245C3 File Offset: 0x003227C3
		// (set) Token: 0x06001417 RID: 5143 RVA: 0x003245BA File Offset: 0x003227BA
		public virtual TObjectName ColumnName
		{
			get
			{
				return this._columnName;
			}
			set
			{
				this._columnName = value;
			}
		}

		// Token: 0x1700038B RID: 907
		// (get) Token: 0x06001419 RID: 5145 RVA: 0x003245CB File Offset: 0x003227CB
		// (set) Token: 0x0600141A RID: 5146 RVA: 0x003245D3 File Offset: 0x003227D3
		public virtual TConstraintList ConstraintList
		{
			get
			{
				return this._constraintList;
			}
			set
			{
				this._constraintList = value;
			}
		}

		// Token: 0x1700038C RID: 908
		// (get) Token: 0x0600141B RID: 5147 RVA: 0x003245DC File Offset: 0x003227DC
		// (set) Token: 0x0600141C RID: 5148 RVA: 0x003245F7 File Offset: 0x003227F7
		public virtual TObjectNameList ColumnNameList
		{
			get
			{
				if (this._columnNameList == null)
				{
					this._columnNameList = new TObjectNameList();
				}
				return this._columnNameList;
			}
			set
			{
				this._columnNameList = value;
			}
		}

		// Token: 0x1700038D RID: 909
		// (get) Token: 0x0600141D RID: 5149 RVA: 0x00324600 File Offset: 0x00322800
		// (set) Token: 0x0600141E RID: 5150 RVA: 0x00324608 File Offset: 0x00322808
		public virtual TColumnDefinitionList ColumnDefinitionList
		{
			get
			{
				return this._columnDefinitionList;
			}
			set
			{
				this._columnDefinitionList = value;
			}
		}

		// Token: 0x0600141F RID: 5151 RVA: 0x00324611 File Offset: 0x00322811
		public virtual TObjectName getConstraintName()
		{
			return this._constraintName;
		}

		// Token: 0x1700038E RID: 910
		// (get) Token: 0x06001420 RID: 5152 RVA: 0x00324619 File Offset: 0x00322819
		// (set) Token: 0x06001421 RID: 5153 RVA: 0x00324621 File Offset: 0x00322821
		public TObjectName ConstraintName
		{
			get
			{
				return this._constraintName;
			}
			set
			{
				this._constraintName = value;
			}
		}

		// Token: 0x1700038F RID: 911
		// (get) Token: 0x06001422 RID: 5154 RVA: 0x0032462A File Offset: 0x0032282A
		// (set) Token: 0x06001423 RID: 5155 RVA: 0x00324632 File Offset: 0x00322832
		public virtual TObjectName NewColumnName
		{
			get
			{
				return this._newColumnName;
			}
			set
			{
				this._newColumnName = value;
			}
		}

		// Token: 0x17000390 RID: 912
		// (get) Token: 0x06001424 RID: 5156 RVA: 0x0032463B File Offset: 0x0032283B
		// (set) Token: 0x06001425 RID: 5157 RVA: 0x00324643 File Offset: 0x00322843
		public virtual TObjectName NewConstraintName
		{
			get
			{
				return this._newConstraintName;
			}
			set
			{
				this._newConstraintName = value;
			}
		}

		// Token: 0x06001426 RID: 5158 RVA: 0x0032464C File Offset: 0x0032284C
		public override void init(object arg1)
		{
			this._optionType = (EAlterTableOptionType)arg1;
		}

		// Token: 0x06001427 RID: 5159 RVA: 0x0032465C File Offset: 0x0032285C
		public override void init(object arg1, object arg2)
		{
			this.init(arg1);
			EAlterTableOptionType optionType = this._optionType;
			if (optionType != EAlterTableOptionType.AddConstraintIndex)
			{
				if (optionType == EAlterTableOptionType.DropConstraint)
				{
					this._constraintNameList = (TObjectNameList)arg2;
					return;
				}
				switch (optionType)
				{
				case EAlterTableOptionType.dropPartitionSpecList:
				case EAlterTableOptionType.addPartitionSpecList:
				case EAlterTableOptionType.touch:
				case EAlterTableOptionType.archive:
				case EAlterTableOptionType.unArchive:
					this._partitionSpecList = (List<TPartitionExtensionClause>)arg2;
					return;
				case EAlterTableOptionType.setTableProperties:
				case EAlterTableOptionType.unsetTableProperties:
					this._tableProperties = (List<THiveKeyValueProperty>)arg2;
					return;
				case EAlterTableOptionType.setFileFormat:
					this._fileFormat = (THiveTableFileFormat)arg2;
					return;
				case EAlterTableOptionType.setLocation:
					this._tableLocation = (TObjectName)arg2;
					return;
				case EAlterTableOptionType.serde:
					this._serdeName = (TObjectName)arg2;
					return;
				case EAlterTableOptionType.renamePartition:
					this._newPartitionSpec = (TPartitionExtensionClause)arg2;
					return;
				case EAlterTableOptionType.tableBuckets:
					this._numberOfBuckets = (TConstant)arg2;
					return;
				case EAlterTableOptionType.skewedLocation:
					this._skewedLocations = (TExpressionList)arg2;
					return;
				case EAlterTableOptionType.clusteredSorted:
					this._tableBuckets = (THiveTableBuckets)arg2;
					return;
				case EAlterTableOptionType.partitionColumn:
					this._partitionColumnDef = (TColumnDefinition)arg2;
					return;
				case EAlterTableOptionType.tableSkewed:
					this._tableSkewed = (THiveTableSkewed)arg2;
					return;
				case EAlterTableOptionType.setSchema:
					this._schemaName = (TObjectName)arg2;
					return;
				case EAlterTableOptionType.modifyPrimaryKey:
					this._indexName = (TObjectName)arg2;
					return;
				case EAlterTableOptionType.switchPartition:
					this._newTableName = (TObjectName)arg2;
					return;
				}
				if (arg2 is TColumnDefinitionList)
				{
					this._columnDefinitionList = (TColumnDefinitionList)arg2;
					return;
				}
				if (arg2 is TConstraintList)
				{
					this._constraintList = (TConstraintList)arg2;
					return;
				}
				if (arg2 is TObjectNameList)
				{
					this._columnNameList = (TObjectNameList)arg2;
					return;
				}
				if (arg2 is TDummyList)
				{
					TDummyList tdummyList = (TDummyList)arg2;
					for (int i = 0; i < tdummyList.size(); i++)
					{
						TDummy dummyItem = tdummyList.getDummyItem(i);
						this.ColumnNameList.addObjectName((TObjectName)dummyItem.node1);
					}
				}
				return;
			}
			else
			{
				if (arg2 is List<TIndexColName>)
				{
					this._indexCols = (List<TIndexColName>)arg2;
					return;
				}
				this._columnNameList = (TObjectNameList)arg2;
				return;
			}
		}

		// Token: 0x06001428 RID: 5160 RVA: 0x00324871 File Offset: 0x00322A71
		public virtual void setConstraintName(TDummy pName)
		{
			if (pName == null)
			{
				return;
			}
			if (pName.node1 == null)
			{
				return;
			}
			this._constraintName = (TObjectName)pName.node1;
		}

		// Token: 0x06001429 RID: 5161 RVA: 0x00324891 File Offset: 0x00322A91
		public virtual void setConstraintName(TObjectName constraintName)
		{
			this._constraintName = constraintName;
		}

		// Token: 0x17000391 RID: 913
		// (get) Token: 0x0600142A RID: 5162 RVA: 0x0032489A File Offset: 0x00322A9A
		// (set) Token: 0x0600142B RID: 5163 RVA: 0x003248A2 File Offset: 0x00322AA2
		public virtual TColumnDefinition NewColumnDef
		{
			get
			{
				return this._newColumnDef;
			}
			set
			{
				this._newColumnDef = value;
			}
		}

		// Token: 0x17000392 RID: 914
		// (get) Token: 0x0600142C RID: 5164 RVA: 0x003248AB File Offset: 0x00322AAB
		// (set) Token: 0x0600142D RID: 5165 RVA: 0x003248B3 File Offset: 0x00322AB3
		public virtual TObjectName SerdeName
		{
			get
			{
				return this._serdeName;
			}
			set
			{
				this._serdeName = value;
			}
		}

		// Token: 0x0600142E RID: 5166 RVA: 0x003248BC File Offset: 0x00322ABC
		public override void init(object arg1, object arg2, object arg3)
		{
			this.init(arg1);
			EAlterTableOptionType optionType = this._optionType;
			if (optionType <= EAlterTableOptionType.serde)
			{
				if (optionType == EAlterTableOptionType.RenameColumn)
				{
					this._columnName = (TObjectName)arg2;
					this._newColumnName = (TObjectName)arg3;
					return;
				}
				if (optionType == EAlterTableOptionType.ChangeColumn)
				{
					this._columnName = (TObjectName)arg2;
					this._newColumnDef = (TColumnDefinition)arg3;
					return;
				}
				if (optionType == EAlterTableOptionType.serde)
				{
					this._serdeName = (TObjectName)arg2;
					this._tableProperties = (List<THiveKeyValueProperty>)arg3;
					return;
				}
			}
			else
			{
				if (optionType == EAlterTableOptionType.exchangePartition)
				{
					this._exchangePartitionSpec = (TPartitionExtensionClause)arg2;
					this._newTableName = (TObjectName)arg3;
					return;
				}
				if (optionType == EAlterTableOptionType.modifyPrimaryKey)
				{
					if (arg2 != null)
					{
						this._indexName = (TObjectName)arg2;
					}
					this._columnNameList = (TObjectNameList)arg3;
					return;
				}
				if (optionType == EAlterTableOptionType.switchPartition)
				{
					this._newTableName = (TObjectName)arg2;
					this._partitionExpression1 = (TExpression)arg3;
					return;
				}
			}
			this._columnName = (TObjectName)arg2;
			this._newColumnName = (TObjectName)arg3;
		}

		// Token: 0x0600142F RID: 5167 RVA: 0x003249B7 File Offset: 0x00322BB7
		public override void init(object arg1, object arg2, object arg3, object arg4)
		{
			this.init(arg1, arg2, arg3);
			if (this._optionType == EAlterTableOptionType.switchPartition)
			{
				this._partitionExpression2 = (TExpression)arg4;
			}
		}

		// Token: 0x17000393 RID: 915
		// (get) Token: 0x06001430 RID: 5168 RVA: 0x003249D9 File Offset: 0x00322BD9
		// (set) Token: 0x06001431 RID: 5169 RVA: 0x003249E1 File Offset: 0x00322BE1
		public virtual List<TPartitionExtensionClause> PartitionSpecList
		{
			get
			{
				return this._partitionSpecList;
			}
			set
			{
				this._partitionSpecList = value;
			}
		}

		// Token: 0x17000394 RID: 916
		// (get) Token: 0x06001432 RID: 5170 RVA: 0x003249EA File Offset: 0x00322BEA
		// (set) Token: 0x06001433 RID: 5171 RVA: 0x003249F2 File Offset: 0x00322BF2
		public virtual List<THiveKeyValueProperty> TableProperties
		{
			get
			{
				return this._tableProperties;
			}
			set
			{
				this._tableProperties = value;
			}
		}

		// Token: 0x17000395 RID: 917
		// (get) Token: 0x06001434 RID: 5172 RVA: 0x003249FB File Offset: 0x00322BFB
		// (set) Token: 0x06001435 RID: 5173 RVA: 0x00324A03 File Offset: 0x00322C03
		public virtual THiveTableFileFormat FileFormat
		{
			get
			{
				return this._fileFormat;
			}
			set
			{
				this._fileFormat = value;
			}
		}

		// Token: 0x17000396 RID: 918
		// (get) Token: 0x06001436 RID: 5174 RVA: 0x00324A0C File Offset: 0x00322C0C
		// (set) Token: 0x06001437 RID: 5175 RVA: 0x00324A14 File Offset: 0x00322C14
		public virtual TObjectName TableLocation
		{
			get
			{
				return this._tableLocation;
			}
			set
			{
				this._tableLocation = value;
			}
		}

		// Token: 0x17000397 RID: 919
		// (get) Token: 0x06001438 RID: 5176 RVA: 0x00324A1D File Offset: 0x00322C1D
		// (set) Token: 0x06001439 RID: 5177 RVA: 0x00324A25 File Offset: 0x00322C25
		public virtual TPartitionExtensionClause NewPartitionSpec
		{
			get
			{
				return this._newPartitionSpec;
			}
			set
			{
				this._newPartitionSpec = value;
			}
		}

		// Token: 0x17000398 RID: 920
		// (get) Token: 0x0600143A RID: 5178 RVA: 0x00324A2E File Offset: 0x00322C2E
		// (set) Token: 0x0600143B RID: 5179 RVA: 0x00324A36 File Offset: 0x00322C36
		public virtual TConstant NumberOfBuckets
		{
			get
			{
				return this._numberOfBuckets;
			}
			set
			{
				this._numberOfBuckets = value;
			}
		}

		// Token: 0x17000399 RID: 921
		// (get) Token: 0x0600143C RID: 5180 RVA: 0x00324A3F File Offset: 0x00322C3F
		// (set) Token: 0x0600143D RID: 5181 RVA: 0x00324A47 File Offset: 0x00322C47
		public virtual TExpressionList SkewedLocations
		{
			get
			{
				return this._skewedLocations;
			}
			set
			{
				this._skewedLocations = value;
			}
		}

		// Token: 0x1700039A RID: 922
		// (get) Token: 0x0600143E RID: 5182 RVA: 0x00324A50 File Offset: 0x00322C50
		// (set) Token: 0x0600143F RID: 5183 RVA: 0x00324A58 File Offset: 0x00322C58
		public virtual THiveTableBuckets TableBuckets
		{
			get
			{
				return this._tableBuckets;
			}
			set
			{
				this._tableBuckets = value;
			}
		}

		// Token: 0x1700039B RID: 923
		// (get) Token: 0x06001440 RID: 5184 RVA: 0x00324A61 File Offset: 0x00322C61
		// (set) Token: 0x06001441 RID: 5185 RVA: 0x00324A69 File Offset: 0x00322C69
		public virtual TColumnDefinition PartitionColumnDef
		{
			get
			{
				return this._partitionColumnDef;
			}
			set
			{
				this._partitionColumnDef = value;
			}
		}

		// Token: 0x1700039C RID: 924
		// (get) Token: 0x06001442 RID: 5186 RVA: 0x00324A72 File Offset: 0x00322C72
		// (set) Token: 0x06001443 RID: 5187 RVA: 0x00324A7A File Offset: 0x00322C7A
		public virtual THiveTableSkewed TableSkewed
		{
			get
			{
				return this._tableSkewed;
			}
			set
			{
				this._tableSkewed = value;
			}
		}

		// Token: 0x1700039D RID: 925
		// (get) Token: 0x06001444 RID: 5188 RVA: 0x00324A83 File Offset: 0x00322C83
		// (set) Token: 0x06001445 RID: 5189 RVA: 0x00324A8B File Offset: 0x00322C8B
		public virtual TPartitionExtensionClause ExchangePartitionSpec
		{
			get
			{
				return this._exchangePartitionSpec;
			}
			set
			{
				this._exchangePartitionSpec = value;
			}
		}

		// Token: 0x06001446 RID: 5190 RVA: 0x00324A94 File Offset: 0x00322C94
		public override void doParse(TCustomSqlStatement psql, ESqlClause plocation)
		{
			EAlterTableOptionType optionType = this._optionType;
			if (optionType == EAlterTableOptionType.AddColumn)
			{
				this.ColumnDefinitionList.doParse(psql, plocation);
				for (int i = 0; i < this.ColumnDefinitionList.Count; i++)
				{
					TColumnDefinition column = this.ColumnDefinitionList.getColumn(i);
					column.ColumnName.Location = ESqlClause.createTable;
					column.ColumnName.linkedColumnDefinition = column;
					psql.tables.getTable(0).LinkedColumns.addObjectName(column.ColumnName);
					column.ColumnName.SourceTable = psql.tables.getTable(0);
				}
				return;
			}
			if (optionType != EAlterTableOptionType.ModifyColumn)
			{
				return;
			}
			if (this.ColumnDefinitionList != null)
			{
				this.ColumnDefinitionList.doParse(psql, plocation);
				for (int j = 0; j < this.ColumnDefinitionList.Count; j++)
				{
					TColumnDefinition column2 = this.ColumnDefinitionList.getColumn(j);
					column2.ColumnName.Location = ESqlClause.createTable;
					column2.ColumnName.linkedColumnDefinition = column2;
					psql.tables.getTable(0).LinkedColumns.addObjectName(column2.ColumnName);
					column2.ColumnName.SourceTable = psql.tables.getTable(0);
				}
			}
		}

		// Token: 0x06001447 RID: 5191 RVA: 0x00324BBB File Offset: 0x00322DBB
		public override void accept(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x06001448 RID: 5192 RVA: 0x00324BCB File Offset: 0x00322DCB
		public override void acceptChildren(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x06001449 RID: 5193 RVA: 0x00324BDB File Offset: 0x00322DDB
		public virtual void setDropRestrictType(EKeyReferenceType dropRestrictType)
		{
			this._dropRestrictType = dropRestrictType;
		}

		// Token: 0x0400169B RID: 5787
		private List<TMySQLIndexOption> _indexOptionList;

		// Token: 0x0400169C RID: 5788
		private List<TIndexColName> _indexCols;

		// Token: 0x0400169D RID: 5789
		private TObjectName _serdeName;

		// Token: 0x0400169E RID: 5790
		private EKeyReferenceType _dropRestrictType;

		// Token: 0x0400169F RID: 5791
		private TColumnDefinitionList _columnDefinitionList;

		// Token: 0x040016A0 RID: 5792
		private TConstraintList _constraintList;

		// Token: 0x040016A1 RID: 5793
		private TObjectNameList _columnNameList;

		// Token: 0x040016A2 RID: 5794
		private TObjectName _columnName;

		// Token: 0x040016A3 RID: 5795
		private TObjectName _newColumnName;

		// Token: 0x040016A4 RID: 5796
		private TObjectName _constraintName;

		// Token: 0x040016A5 RID: 5797
		private TObjectName _newConstraintName;

		// Token: 0x040016A6 RID: 5798
		private TObjectName _referencedObjectName;

		// Token: 0x040016A7 RID: 5799
		private TObjectNameList _referencedColumnList;

		// Token: 0x040016A8 RID: 5800
		private TObjectName _newTableName;

		// Token: 0x040016A9 RID: 5801
		private TExpression _defaultExpr;

		// Token: 0x040016AA RID: 5802
		private TConstant _statisticsValue;

		// Token: 0x040016AB RID: 5803
		private List<TAttributeOption> _attributeOptions;

		// Token: 0x040016AC RID: 5804
		private TObjectName _storageName;

		// Token: 0x040016AD RID: 5805
		private TTypeName _newDataType;

		// Token: 0x040016AE RID: 5806
		private TObjectName _newCollation;

		// Token: 0x040016AF RID: 5807
		private TExpression _usingExpr;

		// Token: 0x040016B0 RID: 5808
		private TConstraint _tableConstraint;

		// Token: 0x040016B1 RID: 5809
		private TObjectName _indexName;

		// Token: 0x040016B2 RID: 5810
		private TObjectName _triggerName;

		// Token: 0x040016B3 RID: 5811
		private TObjectName _ruleName;

		// Token: 0x040016B4 RID: 5812
		private TObjectName _parentTable;

		// Token: 0x040016B5 RID: 5813
		private TObjectName _anyTypeName;

		// Token: 0x040016B6 RID: 5814
		private TObjectName _newOwnerName;

		// Token: 0x040016B7 RID: 5815
		private TObjectName _newTablespaceName;

		// Token: 0x040016B8 RID: 5816
		private TObjectName _schemaName;

		// Token: 0x040016B9 RID: 5817
		private TObjectNameList _constraintNameList;

		// Token: 0x040016BA RID: 5818
		private TExpression _partitionExpression1;

		// Token: 0x040016BB RID: 5819
		private TExpression _partitionExpression2;

		// Token: 0x040016BC RID: 5820
		private TMySQLIndexStorageType _mySQLIndexStorageType;

		// Token: 0x040016BD RID: 5821
		private TSourceToken _mySQLIndexTypeToken;

		// Token: 0x040016BE RID: 5822
		private TColumnDefinition _newColumnDef;

		// Token: 0x040016BF RID: 5823
		private List<TPartitionExtensionClause> _partitionSpecList;

		// Token: 0x040016C0 RID: 5824
		private List<THiveKeyValueProperty> _tableProperties;

		// Token: 0x040016C1 RID: 5825
		private THiveTableFileFormat _fileFormat;

		// Token: 0x040016C2 RID: 5826
		private TObjectName _tableLocation;

		// Token: 0x040016C3 RID: 5827
		private TPartitionExtensionClause _newPartitionSpec;

		// Token: 0x040016C4 RID: 5828
		private TConstant _numberOfBuckets;

		// Token: 0x040016C5 RID: 5829
		private TExpressionList _skewedLocations;

		// Token: 0x040016C6 RID: 5830
		private THiveTableBuckets _tableBuckets;

		// Token: 0x040016C7 RID: 5831
		private TColumnDefinition _partitionColumnDef;

		// Token: 0x040016C8 RID: 5832
		private THiveTableSkewed _tableSkewed;

		// Token: 0x040016C9 RID: 5833
		private TPartitionExtensionClause _exchangePartitionSpec;

		// Token: 0x040016CA RID: 5834
		private EAlterTableOptionType _optionType;
	}
}
